<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  

  
  <title>img | 熊宏杰</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="一、GIt解决的问题 当想要将文档还原到编辑前的文职需要先备份编辑前的文档，通常会在文档名或目录上添加编辑的日期，编辑前还要事先复制，使用这种方法比较麻烦，同时命名无规则，使人无法区分那个是最新的。还存在如果是共享文件的话，需要加上编辑者的名字，患有，那些文档名字没有体现修改的内容。 如果是两个人同时编辑某个共享的文件，先编辑的人所做的修改内容会被覆盖。  二、Git进行版本管理三、管理历史记录的">
<meta property="og:type" content="article">
<meta property="og:title" content="img">
<meta property="og:url" content="http://yoursite.com/2020/08/06/img/index.html">
<meta property="og:site_name" content="熊宏杰">
<meta property="og:description" content="一、GIt解决的问题 当想要将文档还原到编辑前的文职需要先备份编辑前的文档，通常会在文档名或目录上添加编辑的日期，编辑前还要事先复制，使用这种方法比较麻烦，同时命名无规则，使人无法区分那个是最新的。还存在如果是共享文件的话，需要加上编辑者的名字，患有，那些文档名字没有体现修改的内容。 如果是两个人同时编辑某个共享的文件，先编辑的人所做的修改内容会被覆盖。  二、Git进行版本管理三、管理历史记录的">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/WUgipvVQgYc3VkjS.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/7mJxZzhUNL4vzO6m.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/Jb7GPg3QuPo7GtDa.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/M8LkHw8pK0wIpVAX.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/r8FOBz4kCQ4lhq1Z.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/6MzYTKUASgwrV1pA.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/NPc1zpVcLvUJ1u0a.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/IJsqGFAB8jgIWXMs.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/vwZ8l9KPOuwQ6JlC.png!thumbnail">
<meta property="og:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/Ni27UK4zy1EX9lH3.png!thumbnail">
<meta property="article:published_time" content="2020-08-06T08:18:51.000Z">
<meta property="article:modified_time" content="2020-08-06T08:22:40.740Z">
<meta property="article:author" content="John Doe">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://yoursite.com/myblog/.com//myblog/blog/source_posts/img/WUgipvVQgYc3VkjS.png!thumbnail">
  
    <link rel="alternate" href="/myblog/atom.xml" title="熊宏杰" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  
<link rel="stylesheet" href="/myblog/css/style.css">

<meta name="generator" content="Hexo 5.0.0"></head>

<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/myblog/" id="logo">熊宏杰</a>
      </h1>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/myblog/">Home</a>
        
          <a class="main-nav-link" href="/myblog/archives">Archives</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/myblog/atom.xml" title="RSS Feed"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="Search"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="http://yoursite.com"></form>
      </div>
    </div>
  </div>
</header>
      <div class="outer">
        <section id="main"><article id="post-img" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/myblog/2020/08/06/img/" class="article-date">
  <time datetime="2020-08-06T08:18:51.000Z" itemprop="datePublished">2020-08-06</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      img
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h3 id="一、GIt解决的问题"><a href="#一、GIt解决的问题" class="headerlink" title="一、GIt解决的问题"></a>一、GIt解决的问题</h3><ul>
<li>当想要将文档还原到编辑前的文职需要先备份编辑前的文档，通常会在文档名或目录上添加编辑的日期，编辑前还要事先复制，使用这种方法比较麻烦，同时命名无规则，使人无法区分那个是最新的。还存在如果是共享文件的话，需要加上编辑者的名字，患有，那些文档名字没有体现修改的内容。</li>
<li>如果是两个人同时编辑某个共享的文件，先编辑的人所做的修改内容会被覆盖。</li>
</ul>
<h3 id="二、Git进行版本管理"><a href="#二、Git进行版本管理" class="headerlink" title="二、Git进行版本管理"></a>二、Git进行版本管理</h3><h3 id="三、管理历史记录的数据库、远程数据库和本地数据库"><a href="#三、管理历史记录的数据库、远程数据库和本地数据库" class="headerlink" title="三、管理历史记录的数据库、远程数据库和本地数据库"></a>三、管理历史记录的数据库、远程数据库和本地数据库</h3><ul>
<li>远程数据库:  配有专用的服务器，为了多人共享而建立的数据库。                      </li>
<li>本地数据库: 为了方便用户个人使用，在自己的机器上配置的数据库</li>
</ul>
<h3 id="四、创建数据库"><a href="#四、创建数据库" class="headerlink" title="四、创建数据库"></a>四、创建数据库</h3><ul>
<li>创建全新的数据库</li>
<li>复制远程数据库</li>
</ul>
<h3 id="五、修改记录的提交"><a href="#五、修改记录的提交" class="headerlink" title="五、修改记录的提交"></a>五、修改记录的提交</h3><ul>
<li>不同类别的修改 (如：Bug修复和功能添加) 要尽量分开提交，以方便以后从历史记录里查找特定的修改内容。</li>
<li>需要认真填写修改内容的提交信息</li>
</ul>
<h3 id="六、工作树和索引"><a href="#六、工作树和索引" class="headerlink" title="六、工作树和索引"></a>六、工作树和索引</h3><p><img src="/myblog/.com//myblog\blog\source_posts\img\WUgipvVQgYc3VkjS.png!thumbnail" alt="图片"></p>
<h2 id="1、GIt安装"><a href="#1、GIt安装" class="headerlink" title="1、GIt安装"></a>1、GIt安装</h2><ul>
<li><a target="_blank" rel="noopener" href="https://backlog.com/git-tutorial/cn/intro/intro2_1.html">https://backlog.com/git-tutorial/cn/intro/intro2_1.html</a></li>
</ul>
<h2 id="2、新建数据库"><a href="#2、新建数据库" class="headerlink" title="2、新建数据库"></a>2、新建数据库</h2><ul>
<li><a target="_blank" rel="noopener" href="https://backlog.com/git-tutorial/cn/intro/intro2_3.html">https://backlog.com/git-tutorial/cn/intro/intro2_3.html</a></li>
</ul>
<h2 id="3、提交文件"><a href="#3、提交文件" class="headerlink" title="3、提交文件"></a>3、提交文件</h2><h1 id="使用命令行管理git"><a href="#使用命令行管理git" class="headerlink" title="使用命令行管理git"></a>使用命令行管理git</h1><h2 id="一、安装Git"><a href="#一、安装Git" class="headerlink" title="一、安装Git"></a>一、安装Git</h2><p><a target="_blank" rel="noopener" href="http://git-scm.com/">http://git-scm.com/</a></p>
<h2 id="二、检查是否安装完成"><a href="#二、检查是否安装完成" class="headerlink" title="二、检查是否安装完成"></a>二、检查是否安装完成</h2><ol>
<li>window安装之后，从开始菜单 &gt; 所有程序 &gt; Git &gt; Git Bash启动程序。</li>
<li>Mac安装完成之后，启动应用终端执行</li>
</ol>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ git --version</span><br><span class="line">git version 1.7.7.5(Apple Git-26)------显示的结果</span><br></pre></td></tr></table></figure>

<h2 id="三、初期设定"><a href="#三、初期设定" class="headerlink" title="三、初期设定"></a>三、初期设定</h2><p>安装Git之后，请输入您的用户名和电子邮件地址。该设置操作在安装Git后进行一次就够了。这些信息将作为提交者信息显示在更新历史中。</p>
<h3 id="命令行"><a href="#命令行" class="headerlink" title="命令行"></a>命令行</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ git config --global user.name &quot;&lt;用户名&gt;&quot;</span><br><span class="line">$ git config --global user.email &quot;&lt;电子邮件&gt;&quot;</span><br></pre></td></tr></table></figure>

<p>以下命令能让Git以彩色显示</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git config --global alias.co checkout</span><br></pre></td></tr></table></figure>

<p>如果在windows使用命令行（Git Bash），含非ASCII字符的文件名会显示为“、346\226\260\350.…”。若设置如下，就可以让含非ASCII字符的文件名正常显示了。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git config --global core.quotepath off</span><br></pre></td></tr></table></figure>

<p>若在Windows使用命令行，宁只能输入ASCII字符。所以，如果您的提交信息包含非ASCII字符，请不要使用-m选项。而要用外部编辑器输入。<br>外部编辑器必须能与字符编码UTF-8和换行符LF兼容</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git config --global core.editor &quot;\&quot;[使用编辑区的路径]\&quot;&quot;</span><br></pre></td></tr></table></figure>

<h2 id="新建数据库"><a href="#新建数据库" class="headerlink" title="新建数据库"></a>新建数据库</h2><p>接下来要在本地新建数据库，创建一个名称为「tutorial」的空目录，并把它放在Git管理之下。</p>
<h3 id="命令行-1"><a href="#命令行-1" class="headerlink" title="命令行"></a>命令行</h3><p>首先在任意的一个地方新创建tutorial目录。然后使用init命令把改目录移到本地Git数据库</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git init</span><br></pre></td></tr></table></figure>

<p>按照以下的步骤将新创建的tutorial目录设置到Git数据库</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">$ mkdir tutorial</span><br><span class="line">$ cd tutorial</span><br><span class="line">$ git init</span><br><span class="line">Initialized empty Git repository in</span><br><span class="line">&#x2F;Users&#x2F;yourname&#x2F;Desktop&#x2F;tutorial&#x2F;.git</span><br></pre></td></tr></table></figure>

<h2 id="提交文件"><a href="#提交文件" class="headerlink" title="提交文件"></a>提交文件</h2><p>在tutorial目录新建一个文件，然后将文件添加到数据库。</p>
<p>首先在tutorial目录里新建一个名为「sample.txt」的文本文件，请在文件中输入以下的内容：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">连猴子都懂的Git命令</span><br></pre></td></tr></table></figure>

<h3 id="命令行-2"><a href="#命令行-2" class="headerlink" title="命令行"></a>命令行</h3><p>使用status命令确认工作树（文件存放的目录本地实际操作的目录)和索引（提交之前将文件上传到中间索引区域，准备区域）</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git status</span><br></pre></td></tr></table></figure>

<p>执行status命令确定tutorial目录的状态</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">$ git status</span><br><span class="line"># On branch master</span><br><span class="line">#</span><br><span class="line"># Initial commit</span><br><span class="line">#</span><br><span class="line"># Untracked files:</span><br><span class="line">#   (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)</span><br><span class="line">#</span><br><span class="line">#     sample.txt</span><br><span class="line">nothing added to commit but untracked files present (use &quot;git add&quot; to track)</span><br></pre></td></tr></table></figure>

<p>从status响应我们可以看到‘sample.txt’目前不是历史记录对象。请首先把‘sample.txt’加入到索引，就可以追踪它的变更了。<br>将文件加入到索引，要使用add命令。在<file>指定加入索引的文件。用空格分割可以指定多个文件。</file></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git add &lt;file&gt;..</span><br></pre></td></tr></table></figure>

<p>指定参数【.】,可以把所有的文件加入到索引</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git add .</span><br></pre></td></tr></table></figure>

<p>现在，我们把sample.txt加入到索引然后确认一下。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">现在，我们把sample.txt加入到索引然后确认一下。</span><br><span class="line"></span><br><span class="line">$ git add sample.txt</span><br><span class="line">$ git status</span><br><span class="line"># On branch master</span><br><span class="line">#</span><br><span class="line"># Initial commit</span><br><span class="line">#</span><br><span class="line"># Changes to be committed:</span><br><span class="line">#   (use &quot;git rm --cached &lt;file&gt;...&quot; to unstage)</span><br><span class="line">#</span><br></pre></td></tr></table></figure>

<h1 id="new-file-sample-txt"><a href="#new-file-sample-txt" class="headerlink" title="new file:   sample.txt"></a>new file:   sample.txt</h1><p>既然sample.txt已加入到索引，我们就可以提交文件了。请执行如下显示的commit命令。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git commit -m &quot;&quot;</span><br></pre></td></tr></table></figure>

<p>执行commit命令之后确认状态。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">$ git commit -m &quot;first commit&quot;</span><br><span class="line">[master (root-commit) 116a286] first commit</span><br><span class="line"> 0 files changed, 0 insertions(+), 0 deletions(-)</span><br><span class="line"> create mode 100644 sample.txt</span><br><span class="line"></span><br><span class="line">$ git status</span><br><span class="line"># On branch master</span><br><span class="line">nothing to commit (working directory clean)</span><br></pre></td></tr></table></figure>

<p>从status响应我们可以看到没有新的变更要提交。<br>使用log命令，我们可以在数据库的提交记录看到新的提交。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">$ git log</span><br><span class="line">commit ac56e474afbbe1eab9ebce5b3ab48ac4c73ad60e</span><br><span class="line">Author: eguchi &lt;eguchi@nulab.co.jp&gt;</span><br><span class="line">Date:   Thu Jul 12 18:00:21 2012 +0900</span><br><span class="line"></span><br><span class="line">    first commit</span><br></pre></td></tr></table></figure>

<p>安装git的同时会安装名为gitk的工具。使用这个工具，可以在GUI下确认提交记录。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git gitk</span><br></pre></td></tr></table></figure>

<p><img src="/myblog/.com//myblog\blog\source_posts\img\7mJxZzhUNL4vzO6m.png!thumbnail" alt="图片"></p>
<h1 id="共享数据库"><a href="#共享数据库" class="headerlink" title="共享数据库"></a>共享数据库</h1><h2 id="push到远程数据库"><a href="#push到远程数据库" class="headerlink" title="push到远程数据库"></a>push到远程数据库</h2><p>前面我们为大家介绍了本地数据库的基本使用方法。下面，我们接着为大家讲解如何在远程数据库上共享本地数据库的修改记录。</p>
<h3 id="推送"><a href="#推送" class="headerlink" title="推送"></a>推送</h3><p>为了将本地数据库的修改记录共享到远程数据库，必须上传本地数据库中存储的修改记录。</p>
<p>为此，需要在Git执行推送(Push)操作。执行Push之后，本地的修改记录会被上传到远程数据库。所以远程数据库的修改记录就会和本地数据库的修改记录保持同步。</p>
<p><img src="/myblog/.com//myblog\blog\source_posts\img\Jb7GPg3QuPo7GtDa.png!thumbnail" alt="图片"></p>
<h3 id="克隆远程数据库"><a href="#克隆远程数据库" class="headerlink" title="克隆远程数据库"></a>克隆远程数据库</h3><p>如果远程数据库中有他人的修改记录，那么把它完整地复制下来您就可以接着进行工作了</p>
<h3 id="从远程数据库pull（把远程数据库的内容更新到本地数据库）"><a href="#从远程数据库pull（把远程数据库的内容更新到本地数据库）" class="headerlink" title="从远程数据库pull（把远程数据库的内容更新到本地数据库）"></a>从远程数据库pull（把远程数据库的内容更新到本地数据库）</h3><p>若是共享的远程数据库由多人同时作业，那么作业完毕后所有人都要把修改推送到远程数据库。然后，自己的本地数据库也需要更新其他人推送的变更内容。</p>
<p><img src="/myblog/.com//myblog\blog\source_posts\img\M8LkHw8pK0wIpVAX.png!thumbnail" alt="图片"></p>
<h1 id="在贝格乐建立远程数据库"><a href="#在贝格乐建立远程数据库" class="headerlink" title="在贝格乐建立远程数据库"></a>在贝格乐建立远程数据库</h1><p><a target="_blank" rel="noopener" href="https://backlog.com/git-tutorial/cn/intro/intro4_1.html">https://backlog.com/git-tutorial/cn/intro/intro4_1.html</a></p>
<h1 id="push到远程数据库-1"><a href="#push到远程数据库-1" class="headerlink" title="push到远程数据库"></a>push到远程数据库</h1><p>我们试试推送在「 Git的基础」教程中创建的本地数据库吧。mi</p>
<h2 id="命令行-3"><a href="#命令行-3" class="headerlink" title="命令行"></a>命令行</h2><p>请使用remote指令添加远程数据库。在<name>处输入远程数据库名称，在<url>处指定远程数据库的URL。</url></name></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git remote add &lt;name&gt; &lt;url&gt;</span><br></pre></td></tr></table></figure>

<p>通过运行以下指令，将创建于上一个页面的远程数据库的URL命名为“origin”。<br><img src="/myblog/.com//myblog\blog\source_posts\img\r8FOBz4kCQ4lhq1Z.png!thumbnail" alt="图片"></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ git remote add origin</span><br><span class="line">https:&#x2F;&#x2F;[your_space_id].backlogtool.com&#x2F;git&#x2F;[your_project_key]&#x2F;tutorial.git</span><br></pre></td></tr></table></figure>

<p>执行推送或者拉取的时候，如果省略了远程数据库的名称，则默认使用名为”origin“的远程数据库。因此一般都会把远程数据库命名为origin。<br>使用push命令向数据库推送更改内容。<repository>处输入目标地址，<refspec>处指定推送的分支。我们将在高级篇详细地对分支进行说明。</refspec></repository></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git push &lt;repository&gt; &lt;refspac&gt;... </span><br></pre></td></tr></table></figure>

<p>运行以下命令便可向远程数据库‘origin’进行推送。当执行命令时，如果您指定了-u选项，那么下一次推送时就可以省略分支名称了。但是，首次运行指令向空的远程数据库推送时，必须指定远程数据库名称和分支名称。</p>
<p>当被要求输入用户名和密码，请使用您的贝格乐用户名和密码。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">$ git push -u origin master</span><br><span class="line">Username: &lt;用户名&gt;</span><br><span class="line">Password: &lt;密码&gt;</span><br><span class="line">Counting objects: 3, done.</span><br><span class="line">Writing objects: 100% (3&#x2F;3), 245 bytes, done.</span><br><span class="line">Total 3 (delta 0), reused 0 (delta 0)</span><br><span class="line">To https:&#x2F;&#x2F;nulab.backlog.jp&#x2F;git&#x2F;BLG&#x2F;tutorial.git</span><br><span class="line"> * [new branch]      master -&gt; master</span><br></pre></td></tr></table></figure>

<p>请打开贝格乐的Git页面。在‘最近更新’处您会看到刚刚推送到远程数据库的项目。<br><img src="/myblog/.com//myblog\blog\source_posts\img\6MzYTKUASgwrV1pA.png!thumbnail" alt="图片"></p>
<p>已推送的文件已添加到远程数据库的文件列表中。</p>
<p><img src="/myblog/.com//myblog\blog\source_posts\img\NPc1zpVcLvUJ1u0a.png!thumbnail" alt="图片"></p>
<h2 id="克隆远程数据库-1"><a href="#克隆远程数据库-1" class="headerlink" title="克隆远程数据库"></a>克隆远程数据库</h2><p>假设您是其中一位团队成员，把现有的远程数据库克隆到另一个目录( tutorial2 )。</p>
<h3 id="命令行-4"><a href="#命令行-4" class="headerlink" title="命令行"></a>命令行</h3><p>使用clone指令可以复制数据库，在<repository>指定远程数据库的URL，</repository></p>
<p>在<directory>指定新目录的名称。</directory></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git clone &lt;repository&gt; &lt;directory&gt;</span><br></pre></td></tr></table></figure>

<p>执行以下指令后，会在目录(tutorial2) 复制远程数据库。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">$ git clone https:&#x2F;&#x2F;nulab.backlog.jp&#x2F;git&#x2F;BLG&#x2F;tutorial.git tutorial2</span><br><span class="line">Cloning into &#39;tutorial2&#39;...</span><br><span class="line">Username: &lt;用户名&gt;</span><br><span class="line">Password: &lt;密码&gt;</span><br><span class="line">remote: Counting objects: 3, done.</span><br><span class="line">remote: Total 3 (delta 0), reused 0 (delta 0)</span><br><span class="line">Unpacking objects: 100% (3&#x2F;3), done.</span><br></pre></td></tr></table></figure>

<p>若要验证克隆是否成功，请看在复制的目录“tutorial2”中的sample.txt是否含有以下文字。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">连猴子都懂的Git命令</span><br></pre></td></tr></table></figure>

<h2 id="从克隆的数据库进行push"><a href="#从克隆的数据库进行push" class="headerlink" title="从克隆的数据库进行push"></a>从克隆的数据库进行push</h2><h3 id="命令行-5"><a href="#命令行-5" class="headerlink" title="命令行"></a>命令行</h3><p>首先，在之前克隆的数据库目录里的sample.txt 添加以下黑体字，并提交。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">连猴子都懂的Git命令</span><br><span class="line">add 把变更录入到索引中</span><br></pre></td></tr></table></figure>

<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">$ git add sample.txt</span><br><span class="line">$ git commit -m &quot;添加的说明&quot;</span><br><span class="line">[master 1ef5c8c] 添加add的说明</span><br><span class="line"> 1 files changed, 1 insertions(+), 1 deletions(-)</span><br></pre></td></tr></table></figure>

<p><strong>用tutorial2进行的操作</strong><br>然后，推送此次变更，更新远程数据库。</p>
<p>当在克隆的数据库目录执行推送时，您可以省略数据库和分支名称</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">$ git push</span><br><span class="line">Username: &lt;用户名&gt;</span><br><span class="line">Password: &lt;密码&gt;</span><br><span class="line">Counting objects: 5, done.</span><br><span class="line">Delta compression using up to 4 threads.</span><br><span class="line">Compressing objects: 100% (2&#x2F;2), done.</span><br><span class="line">Writing objects: 100% (3&#x2F;3), 351 bytes, done.</span><br><span class="line">Total 3 (delta 0), reused 0 (delta 0)</span><br><span class="line">To https:&#x2F;&#x2F;nulab.backlog.jp&#x2F;git&#x2F;BLG&#x2F;tutorial.git</span><br><span class="line">   486789c..1ef5c8c  master -&gt; master</span><br></pre></td></tr></table></figure>

<p>请打开贝格乐的Git页面。在‘最近更新’处您会看到刚刚推送的提交。</p>
<p><img src="/myblog/.com//myblog\blog\source_posts\img\IJsqGFAB8jgIWXMs.png!thumbnail" alt="图片"></p>
<h2 id="从远程数据库pull"><a href="#从远程数据库pull" class="headerlink" title="从远程数据库pull"></a>从远程数据库pull</h2><h3 id="命令行-6"><a href="#命令行-6" class="headerlink" title="命令行"></a>命令行</h3><p>我们把在上一页面中从“tutorial2”推送到远程数据库的内容拉取到数据库目录“tutorial”吧。</p>
<p>使用pull指令进行拉取操作。省略数据库名称的话，会在名为origin的数据库进行pull。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ git pull &lt;repository&gt; &lt;refspec&gt;...</span><br></pre></td></tr></table></figure>

<p><strong>用tutorial进行的操作</strong><br>请执行以下指令。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">$ git pull origin master</span><br><span class="line">Username: &lt;用户名&gt;</span><br><span class="line">Password: &lt;密码&gt;</span><br><span class="line">From https:&#x2F;&#x2F;nulab.backlog.jp&#x2F;git&#x2F;BLG&#x2F;tutorial</span><br><span class="line"> * branch            master     -&gt; FETCH_HEAD</span><br><span class="line">Updating ac56e47..3da09c1</span><br><span class="line">Fast-forward</span><br><span class="line"> sample.txt |    1 +</span><br><span class="line"> 1 files changed, 1 insertions(+), 0 deletions(-)</span><br></pre></td></tr></table></figure>

<p>sample.txt文档的内容已更新。<br><strong>用tutorial进行的操作</strong></p>
<p>我们使用log指令来确认历史记录是否已更新</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">$ git log</span><br><span class="line">commit 3da09c1134a41f2bee854a413916e4ebcae7318d</span><br><span class="line">Author: eguchi &lt;eguchi@nulab.co.jp&gt;</span><br><span class="line">Date:   Thu Jul 12 18:02:45 2012 +0900</span><br><span class="line"></span><br><span class="line">    添加add的说明</span><br><span class="line"></span><br><span class="line">commit ac56e474afbbe1eab9ebce5b3ab48ac4c73ad60e</span><br><span class="line">Author: eguchi &lt;eguchi@nulab.co.jp&gt;</span><br><span class="line">Date:   Thu Jul 12 18:00:21 2012 +0900</span><br><span class="line"></span><br><span class="line">    first commit</span><br></pre></td></tr></table></figure>

<p><strong>用tutorial进行的操作</strong><br>打开sample.txt文件来确认一下内容吧。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">连猴子都懂的Git命令</span><br><span class="line">add 把变更录入到索引中</span><br></pre></td></tr></table></figure>

<h1 id="合并修改记录"><a href="#合并修改记录" class="headerlink" title="合并修改记录"></a>合并修改记录</h1><h2 id="合并"><a href="#合并" class="headerlink" title="合并"></a>合并</h2><p><img src="/myblog/.com//myblog\blog\source_posts\img\vwZ8l9KPOuwQ6JlC.png!thumbnail" alt="图片"></p>
<p>在执行pull之后，进行下一次push之前，如果其他人进行了推送内容到远程数据库的话，那么你的push将被拒绝。</p>
<p><img src="/myblog/.com//myblog\blog\source_posts\img\Ni27UK4zy1EX9lH3.png!thumbnail" alt="图片"></p>
<p>这种情况下，在读取别人push的变更并进行合并操作之前，你的push都将被拒绝。这是因为，如果不进行合并就试图覆盖已有的变更记录的话，其他人push的变更（图中的提交C）就会丢失。</p>
<h3 id="解决冲突"><a href="#解决冲突" class="headerlink" title="解决冲突"></a>解决冲突</h3><p>在上一个页面我们提及到，执行合并即可自动合并Git修改的部分。但是，也存在无法自动合并的情况。</p>
<p>如果远程数据库和本地数据库的同一个地方都发生了修改的情况下，因为无法自动判断要选用哪一个修改，所以就会发生冲突。</p>
<p>Git会在发生冲突的地方修改文件的内容，如下图。所以我们需要手动修正冲突。</p>
<h2 id="push冲突的状态"><a href="#push冲突的状态" class="headerlink" title="push冲突的状态"></a>push冲突的状态</h2><p>现在，我们将要学习怎样解决冲突。</p>
<p>首先，我们用“tutorial”和“tutorial2”制造一个冲突状态。</p>
<h3 id="Windows"><a href="#Windows" class="headerlink" title="Windows"></a>Windows</h3><p><a target="_blank" rel="noopener" href="https://backlog.com/git-tutorial/cn/intro/intro6_2.html">https://backlog.com/git-tutorial/cn/intro/intro6_2.html</a></p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://yoursite.com/2020/08/06/img/" data-id="ckdijbo400000ogvd5zodaet0" class="article-share-link">Share</a>
      
      
    </footer>
  </div>
  
    
<nav id="article-nav">
  
  
    <a href="/myblog/2020/08/06/hello-world/" id="article-nav-older" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Older</strong>
      <div class="article-nav-title">Hello World</div>
    </a>
  
</nav>

  
</article>

</section>
        
          <aside id="sidebar">
  
    

  
    

  
    
  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/myblog/archives/2020/08/">August 2020</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Recent Posts</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/myblog/2020/08/06/img/">img</a>
          </li>
        
          <li>
            <a href="/myblog/2020/08/06/hello-world/">Hello World</a>
          </li>
        
          <li>
            <a href="/myblog/2020/08/06/hello/">hello</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      &copy; 2020 John Doe<br>
      Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/myblog/" class="mobile-nav-link">Home</a>
  
    <a href="/myblog/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>


  
<link rel="stylesheet" href="/myblog/fancybox/jquery.fancybox.css">

  
<script src="/myblog/fancybox/jquery.fancybox.pack.js"></script>




<script src="/myblog/js/script.js"></script>




  </div>
</body>
</html>